昨天我們下了三道指令,把 access log 裡那些假裝是正常人類的訪客,和毫不掩飾自己是爬蟲的傢伙分成了兩堆。第二堆名單通常會浮現十幾個名字,看起來就像這樣:
209 GPTBot
148 ClaudeBot
118 meta-externalagent
102 OAI-SearchBot
49 PerplexityBot
48 CCBot
37 ChatGPT-User
今天我們要把這些名字的底細徹底掀開。他們背後是誰、半夜潛入你家想拿走什麼、官方身分證放在哪、出門穿什麼外套(User-Agent),還有你該怎麼在門口(robots.txt)貼上拒絕往來戶的字條。
這裡有個底線。本文所有的引述和證據,都是在 2026-09-06 這天親手從他們官方頁面上扒下來的。這件事比你想的還嚴重,外面那些中文農場文早就塞滿了人家改名或死不承認的舊資料,我們後面會親自抓幾個出來看。
如果你今天只打算記住一件事,請記得這句。同一家公司通常會放出三種不同性格的分身,而且會把意圖直接寫在臉上。
| 角色 | 命名慣例 | 它的真實意圖 |
|---|---|---|
| 訓練型 | -Bot、-Agent、公司名 |
像個貪得無厭的掠奪者,大量吞噬你的內容拿去餵養自己的模型。 |
| 索引型 | -SearchBot、-Index、-WebIndexer |
像個造冊的戶政人員,把你的特徵建檔,等 AI 哪天需要回答時把你翻出來。 |
| 即時型 | -User、-Fetcher |
代表此刻正有一個活生生的人在螢幕前問了問題,它只是代為跑腿來敲你的門。 |
把這五家大廠對照一下,那層關係的輪廓就出來了:
| 公司 | 訓練型 | 索引型 | 即時型 |
|---|---|---|---|
| OpenAI | GPTBot |
OAI-SearchBot |
ChatGPT-User |
| Anthropic | ClaudeBot |
Claude-SearchBot |
Claude-User |
| Perplexity | (無) | PerplexityBot |
Perplexity-User |
| Mistral | MistralAI-Training |
MistralAI-Index |
MistralAI-User |
| Meta | meta-externalagent |
meta-webindexer |
meta-externalfetcher |
Mistral 的命名最不遮掩,三個字直接攤牌。至於 Perplexity 為什麼中間空了一格,那不是漏填。他們在自己的聲明裡說得很白,PerplexityBot 不會用來爬取內容訓練基礎模型。他們從一開始就不打算發展這種關係。
抓到這層潛規則,明天就算冒出一個新面孔,你也能一眼看穿他的來意。看到 Kimi-User 你就知道有人在背後使喚它;看到 xAI-SearchBot 你就知道他在建檔。這三種性格對你網站的掠奪程度完全不同,這也是我們明天要深究的痛點。今天我們先學會叫出他們的名字。
官方文件在這裡:https://developers.openai.com/api/docs/bots
| 名字 | robots.txt token | 官方承認的用途 | 守不守門口規矩? |
|---|---|---|---|
GPTBot |
GPTBot |
抓內容去訓練生成式基礎模型 | 是 |
OAI-SearchBot |
OAI-SearchBot |
讓網站出現在 ChatGPT 的搜尋結果裡 | 是 |
ChatGPT-User |
ChatGPT-User |
處理活人觸發的動作 | 部分(見下文) |
OAI-AdsBot |
OAI-AdsBot |
檢查被投放為廣告的頁面是否安全 | 只看廣告頁 |
GPTBot 的自我介紹(UA)長這樣,這是官方原話:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko); compatible; GPTBot/1.4; +https://openai.com/gptbot
OpenAI 文件裡有一段自白非常赤裸,我必須一字不漏地搬過來。這是全業界把「關係界線」畫得最清楚的地方:
"Each setting is independent of the others – for example, a webmaster can allow OAI-SearchBot in order to appear in search results while disallowing GPTBot to indicate that crawled content should not be used for training OpenAI's generative AI foundation models."
說穿了就是,「別碰我的肉體(不給訓練)」和「在外面可以提我的名字(出現在搜尋結果)」,是兩件完全不衝突的事。很多站長一氣之下把門死死鎖上,卻不知道自己連在 ChatGPT 裡的曝光機會也一併扼殺了。這兩者本來就可以各走各的。
仔細看 ChatGPT-User 那一欄的「部分遵守」。OpenAI 自己承認它不是用來自動爬網頁的,而且 robots.txt 的規矩對它可能不適用。別急著罵他們渣,後面你會發現,這早就變成整個圈子裡心照不宣的默契。
ClaudeBot 負責搜刮網頁來餵養模型。Claude-SearchBot 負責導航來提升搜尋結果品質。Claude-User 則是當有人發問時,它代替使用者來按門鈴。這裡藏著一個極度私密卻沒人點破的細節。Anthropic 根本沒有公開這三個人的完整 User-Agent 字串。為了確認這件事,我換了幾種姿勢把那個頁面翻了兩次,裡面連半個 Mozilla/5.0 開頭的範例都沒有。別家都老老實實交出字串,只有他們給了個含糊的代號。
這意味著你在網路上查到的那些 ClaudeBot 完整 UA,全是別人從自己家監視器畫面拼湊出來的,根本不是官方承認的身分證。如果你拿這種偷拍的照片去設下嚴格的門禁比對,絕對會出漏子。正確的防禦姿勢是只認 ClaudeBot 這個局部特徵,而不是強求完全吻合。
Anthropic 接受 Crawl-delay: 1 這種要求放慢腳步的指令。同時在文件裡冷言勸退你用 IP 封鎖,他們說用封 IP 這種激烈手段,可能無法正確或持久地保證把你拒於門外。
官方文件:https://docs.perplexity.ai/guides/bots
PerplexityBot 用來索引,明講了不會拿去訓練。Perplexity-User 是使用者發問時派來的。文件裡毫不掩飾地說,這個跑腿的通常會無視 robots.txt 的規矩。這裡有個很荒謬的坑。Perplexity 官方給出的 UA 長這樣:
Mozilla/5.0 AppleWebKit/537.36 (KHTML, like Gecko; compatible; PerplexityBot/1.0; +https://perplexity.ai/perplexitybot)
仔細看 (KHTML, like Gecko; 那個左括號,它敞開了身子,然後就再也沒有關上。正常的瀏覽器寫法應該是先閉合括號才繼續往下走。這不是我手殘打錯,這是他們官方頁面上的原樣,甚至連 Mistral 的三支爬蟲也把這種殘缺的寫法照抄了過去。
如果你用那種規規矩矩解析 UA 結構的工具去查,這幾個傢伙絕對會讓系統崩潰或解出一堆亂碼。對付他們請永遠只用局部特徵去比對,別指望他們會按牌理出牌。
官方文件:
https://developers.google.com/crawling/docs/crawlers-fetchers/overview-google-crawlers
他們把自己的爬蟲分成三階,這種分類本身就透著權力的味道:
Googlebot、GoogleOther、Google-CloudVertexBot 等)Google-Safety 就明文寫著完全無視 robots.txt。Google 原文是這麼說的,Google-Extended 沒有獨立的 HTTP 請求字串。抓取動作是靠現有的爬蟲去做的,這個 token 只是用來當作控制開關。它也不會影響你的網站能不能在搜尋裡曝光。
也就是說,Google-Extended 只是你在門口掛的一塊「請勿拿我的心血去餵 Gemini」的牌子。來敲門的永遠是 Googlebot。
所以,你的 access log 裡永遠不可能出現 Google-Extended 的身影。如果哪個報表軟體跟你說它昨天來過,那絕對是徹頭徹尾的謊言。Apple 的 Applebot-Extended 也是一樣的把戲,官方直接挑明,它根本不會去爬網頁。這兩個只是虛擬的承諾,認清這點才不會對著空氣疑神疑鬼。
Google-NotebookLM 已經改名了。2026-07-16 的變更紀錄裡寫著,它換成了 Google-GeminiNotebook。舊的名字在今年八月就已經失效。
另外那些在坊間流傳的 Gemini-Deep-Research、Google-Gemini-CLI 或 GoogleAgent-Mariner,我翻遍了官方所有的角落,Google 從來沒有承認過他們。這些名字只是別人在暗處窺探到的,你可以防,但別把他們當成官方認證的過客。
Google 倒是大方地交出了四份 IP 名單,而且是唯一一家分得這麼細的:
https://developers.google.com/static/crawling/ipranges/common-crawlers.json
https://developers.google.com/static/crawling/ipranges/special-crawlers.json
https://developers.google.com/static/crawling/ipranges/user-triggered-fetchers.json
https://developers.google.com/static/crawling/ipranges/user-triggered-agents.json
(請注意現在已經沒有 googlebot.json 這個檔了,是 common-crawlers.json。)
官方文件:https://developers.facebook.com/docs/sharing/webmasters/crawler
| 名字 | 用途 | 守不守門口規矩? |
|---|---|---|
facebookexternalhit |
有人在 FB/IG 分享連結時來抓縮圖 | 坦言在做安全檢查時可能會繞過 |
meta-externalagent |
負責訓練基礎模型與直接索引 | 未聲明例外 |
meta-webindexer |
用來優化 Meta AI | 未聲明例外 |
meta-externalfetcher |
支援代理功能、處理活人觸發的動作 | 明說了可能會無視 robots.txt |
meta-externalads |
處理廣告業務 | 未聲明例外 |
Meta 是五大廠裡唯一一家,連一份 IP 名單都不肯給的。
更要命的是,五支裡面有三支什麼例外都沒寫。你要記住這種人際互動的黑暗面。對方沒有事先聲明會打破規矩,絕對不等於他承諾會遵守。
CCBot (Common Crawl) 是個非營利組織。他們抓走的資料是無數 AI 貪婪吸吮的母乳。他們的 FAQ 是所有人裡寫得最乾淨俐落的,守規矩、只用 GET、不跑 JS、不用 cookie,還把 IP 直接攤在陽光下。Applebot 是蘋果的搜尋爬蟲。他們的說明頁在 2026-09-04 剛更新,是我看過最新的一份,而且是唯一一家把 IP 列表和反查驗證方法都給齊的。Bytespider、GrokBot / xAI-*、DeepSeekBot 這幾家,我們得在下一節另外談。我花了很多時間去查 xAI、字節跳動和 DeepSeek 的底細。結果是他們三家什麼都沒留下。沒有給站長看的說明、沒有公開的代號、沒有遵守規則的承諾,也沒有 IP 名單。你上網搜到的全是路人整理的黑名單,沒有半句是他們自己認帳的。
這不僅僅是少認識三個人而已。robots.txt 這種防禦機制,只對那些願意對你負責、願意留下名字的人才有效。一家連名字都不肯公開的公司,你連要在拒絕往來戶名單上寫什麼都不知道。這種基於信任建立的防線,在這種不留痕跡的關係裡瞬間崩塌。
前面說了幾家有給 IP 清單。這是他們唯一給出的、可以用程式檢驗的實質承諾。我們來看看這些承諾有多新鮮。
只要一行指令(這是 2026-09-06 當天戳下去的真實反應):
curl -sSL https://openai.com/gptbot.json \
| python3 -c "import json,sys; d=json.load(sys.stdin); print(len(d['prefixes']), d['creationTime'])"
我把幾家全部盤問了一遍:
| 清單 | IP 數量 | 上次更新時間 |
|---|---|---|
[openai.com/gptbot.json](https://openai.com/gptbot.json) (訓練) |
21 | 2025-10-30 |
[openai.com/searchbot.json](https://openai.com/searchbot.json) (索引) |
35 | 2026-01-02 |
[openai.com/chatgpt-user.json](https://openai.com/chatgpt-user.json) (即時) |
207 | 2026-09-04 |
[claude.com/crawling/bots.json](https://claude.com/crawling/bots.json) (三支共用) |
26 | 2026-08-18 |
perplexity.ai/perplexitybot.json |
8 | 2025-02-07 |
perplexity.ai/perplexity-user.json |
4 | 2025-10-17 |
mistral.ai/mistralai-user-ips.json |
4 | 2025-02-19 |
[search.developer.apple.com/applebot.json](https://search.developer.apple.com/applebot.json) |
33 | 2026-07-31 |
Google common-crawlers.json |
317 | 2026-09-04 |
Google user-triggered-fetchers.json |
1,058 | 2026-09-03 |
看清這三個現實。
第一,他們對待你的態度差了十萬八千里。Perplexity 那份只有 8 個 IP 的名單,已經放著生灰塵 19 個月了。OpenAI 那份即時型的,兩天前才剛梳理過。同樣叫官方承諾,重量完全不同。
第二,即時派來的人馬比訓練用的多太多了。OpenAI 即時型有 207 個,訓練型才 21 個。Google 也是同樣懸殊的 1058 對 317。最合理的猜測是,即時抓取是混在龐大的通用雲端裡運作,而訓練用的則是關在特定的房間裡固定運作。
第三,這些 AI 廠給的專用名單,清一色全只有 IPv4。我把 OpenAI、Anthropic、Perplexity、Mistral 和 Apple 全翻過底朝天,連半個 IPv6 都沒有。Google 的通用爬蟲清單才有 IPv6(317 個裡有 147 個)。如果你的網站開了 IPv6,卻妄想只靠這些名單來驗證身分,那你家的後門根本是敞開的。
這裡有個討厭的陷阱。Perplexity 註冊表上寫的 [www.perplexity.com/perplexitybot.json](https://www.perplexity.com/perplexitybot.json) 會 302 轉址到 www.perplexity.ai/...。如果你用 curl 不加 -L 跟過去,只會拿到一張轉址的廢紙,然後你的程式解析就會當場死給你看。
社群裡那份最多人拜的 ai.robots.txt 名單(GitHub 上 4.1k star),裡面密密麻麻塞了 227 個條目。而 Cloudflare 的 AI Crawl Control 官方只追蹤了 20 個。我們自己手裡捏著名單有 246 筆,涵蓋了 97 家具名公司。
227 對上 20,這不是誰在說謊,而是他們抱持著完全不同的防禦心態。前者是「只要有嫌疑就通通掐死」,後者是「我只管那些我能驗證身分的人」。
最諷刺的是,社群名單裡經常塞滿了對方早就澄清過的謠言。拿 Cohere 來說,社群名單把他們列進去了,但 Cohere 官方文件白紙黑字寫著,他們目前絕對不會派出爬蟲來搜刮網頁訓練模型,而且表格上全是 N/A。
實務上的生存守則。把社群名單當作值得警惕的緋聞對象,但定罪的鐵證永遠只能看官方文件。兩者不能混為一談。
GPTBot 的外衣來敲門,而且他們真的常這麼幹。怎麼用 IP 去扒下他們的面具,那是第四天的課題。Googlebot 這個字眼不會吃到 GoogleOther,但 Google 會。我們自己的規則會刻意加上斜線,或者限制邊界,就是怕錯殺無辜。記得範圍窄的要先檢查。認清他們命名的暗示,比死記硬背有效。Google-Extended 和 Applebot-Extended 只是你門口掛的牌子,他們不是會來按鈴的實體,永遠不會出現在你的 log 裡。
OpenAI 的界線是切開的,不給肉體訓練,還是可以讓他們在外面幫你宣傳。官方名單的新鮮度落差極大,而且 AI 廠全是在 IPv4 的世界裡打轉。那些連規則都不肯寫清楚的廠商,你門口的 robots.txt 對他們來說就是廢紙。
明天我們要面對的是今天刻意避開的痛點。同樣是 AI 來過,GPTBot 來強取豪奪、OAI-SearchBot 來建檔登記、ChatGPT-User 因為某人的使喚而來,這三種接觸對你的意義完全不同。更別提還有第四種,那是活生生的人類,從 AI 的引導下親自走進了你的房間。
本文是「你的第一本 AEO x GEO 教戰手冊」系列第 2 天。系列實測與數據由 arrivl 整理 —— Growth Analytics for the Agentic Web。